######### 调用示例 ###########
# sh run-middleware-k8s.sh
#
# 自动化集群部署Kubernetes
##############################

sudo yum install -y unzip
if [ ! -f k8s-deploy.zip ];then
  echo ">>> 下载 k8s-deploy.zip 文件"
  wget https://file.open.hand-china.com/hsop-hsop/hsop/video/3/da46cc67e64b4ef8b634cfa0ebc9f591/k8s-deploy.zip
fi
if [ ! -d k8s-deploy ];then
  echo ">>> 解压 k8s-deploy.zip 文件"
  unzip k8s-deploy.zip
fi

echo ">>> 创建中间件存储命名空间：storage"
kubectl create ns storage

cd k8s-deploy/storage
echo ">>> 1. 编辑 mysql 持久化存储配置文件：mysql-pv.yaml"
sleep 3
mkdir -p /data/mysql
vim mysql-pv.yaml
echo ">>>    在 storage 命名空间下执行并创建 mysql 持久化存储..."
kubectl apply -f mysql-pv.yaml -n storage
echo ">>>    编辑 mysql 部署配置文件：mysql-deploy.yaml"
sleep 3
vim mysql-deploy.yaml
echo ">>>    开始部署 Mysql..."
kubectl apply -f mysql-deploy.yaml -n storage
echo ">>>    Mysql 部署完成"

echo ">>> 2. 编辑 redis 持久化存储配置文件：redis-pv.yaml"
sleep 3
mkdir -p /data/redis
vim redis-pv.yaml
echo ">>>    在 storage 命名空间下执行并创建 redis 持久化存储..."
kubectl apply -f redis-pv.yaml -n storage
echo ">>>    编辑 redis 部署配置文件：redis-deploy.yaml"
sleep 3
vim redis-deploy.yaml
echo ">>>    开始部署 Redis..."
kubectl apply -f redis-deploy.yaml -n storage
echo ">>>    Redis 部署完成"

echo ">>> 3. 编辑 minio 持久化存储配置文件：minio-pv.yaml"
sleep 3
mkdir -p /data/minio
vim minio-pv.yaml
echo ">>>    在 storage 命名空间下执行并创建 minio 持久化存储..."
kubectl apply -f minio-pv.yaml -n storage
echo ">>>    编辑 minio 部署配置文件：minio-deploy.yaml"
sleep 3
vim minio-deploy.yaml
echo ">>>    开始部署 Minio..."
kubectl apply -f minio-deploy.yaml -n storage
echo ">>>    Minio 部署完成"
sleep 5

echo ">>>4. 验证部署情况"
echo ">>>   验证pv和pvc是否绑定：kubectl get pvc -n storage"
kubectl get pvc -n storage
echo ">>>   查看Pod情况：kubectl get po -n storage"
echo ">>>   需等待Pod状态变为：Running，则说明部署及启动成功！"
kubectl get po -n storage